Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

lipo

Package Overview
Dependencies
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lipo

Free image manipulation API service built on top of Sharp (an alternative to Jimp, Graphics Magic, Image Magick, and PhantomJS)

  • 1.0.1
  • Source
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

lipo

chat build status code coverage code style styled with prettier made with lass license

Lipo is a free image manipulation API service built on top of Sharp
Need an alternative to Jimp, Graphics Magick, ImageMagick, or PhantomJS? • Built by @niftylettuce and contributors

Lipo is a cross-platform and drop-in replacement for Sharp

Table of Contents

Install

npm:

npm install lipo

yarn:

yarn add lipo

Usage

To keep things simple you can use the exact same API that Sharp offers.

const Lipo = require('lipo');
const lipo = new Lipo();
lipo('input.jpg')
 .resize(300, 300)
 .toFile('output.jpg', err => {
   if (err) throw err;
   console.log('resized image');
 });

Lipo is a drop-in replacement for Sharp (so you won't have to worry about cross-platform installation).

You can simply replace instances of sharp with lipo:

-const sharp = require('sharp');
+const Lipo = require('lipo');
+const lipo = new Lipo();
-sharp('input.jpg')
+lipo('input.jpg')
  .resize(300, 200)
  .toFile('output.jpg', err => {
     if (err) throw err;
     console.log('resized image');
  });

You can even use Lipo from the command line:

curl -F "input=@/Users/me/Desktop/input.jpg" \
  -F 'queue=[ [ "resize", 300, 300 ] ]' \
  -o /Users/me/Desktop/output.jpg \
  https://api.lipo.io

Resize Method Options: If you need to use constant values such as sharp.kernel.nearest, sharp.gravity.centre, or any other option from resize, please use the alternate form of Lipo.kernel.nearest and Lipo.gravity.centre, respectively (just as an example)

Rate Limiting

Note that if you use make more than 100 requests per hour from the same IP address or wish to exceed 20MB file upload size limitation, we will rate limit you until you sign up for an API key at https://lipo.io.

Once you sign up for a key, you can pass it as const lipo = new Lipo({ key: 'YOUR_API_KEY_HERE' }); or as an environment variable (e.g. LIPO_KEY=YOUR_API_KEY_HERE node app.js).

Background

While building Lad I was instructing our team how to install Sharp, but there was a lot of confusion with libvips and many cross-platform installation issues.

Between Docker, Ubuntu, and Mac cross-platform issues reported by the team, I wanted to drop Sharp completely as a dependency from Lad.

I tried pure JavaScript-based solutions like Jimp, and even tried PhantomJS and Puppeteer solutions, however they were all too slow.

Sharp was the fastest option, and therefore I thought making a drop-in replacement that uses a powerful server would be satisfactory.

Thus Lipo was born.

Deploy Yourself

See the test folder for an example that shows how to use the middleware lipo-koa (also see lipo-express and other related packages below).

Credits

Lips by Orin zuu from the Noun Project

Contributors

NameWebsite
Nick Baughhttp://niftylettuce.com/

Trademark Notice

Lipo, Lass, Lad, Cabin, and their respective logos are trademarks of Niftylettuce LLC. These trademarks may not be reproduced, distributed, transmitted, or otherwise used, except with the prior written permission of Niftylettuce LLC. If you are seeking permission to use these trademarks, then please contact us.

License

MIT © Nick Baugh

#

Keywords

FAQs

Package last updated on 29 Nov 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc